Corporations and other enterprises commonly implement their business services on computer systems using a tiered architecture model that provides benefits such as reusability, flexibility, manageability, maintainability, and scalability for a business service application. The tiered architecture model segments an application's components into three tiers of services: the presentation or visualization tier, the middle or business logic tier, and the data or resource tier. These tiers do not necessarily correspond to physical locations on various computers on a network, but rather to logical layers of the application.
The visualization tier or layer provides an interface for the end user into the application. The business logic tier or layer (also referenced as the application layer) typically includes application specific code or components for enforcing a set of business and data rules used to implement a given business service. The resource tier is a data management layer for storing and retrieving information or persistent data usually stored in a database or in permanent storage.
In one implementation of the tiered architecture model, the application layer is operatively connected to the resource layer through information model nodes, which function as an interim translation layer for access to the persistent data that reside in the resource tier. An information model typically describes the combination of a data model (one type of information model node) and a content model (another type of information model node) together with one or more associations between information model nodes. A data model describes the techniques for describing well structured data within an application. For example, the technique or structure for formatting a paragraph in a document created using the Microsoft® Word application may be represented in a data model. A content model is a set of meta data that describes unstructured data, such as data that a user writes in a document described by a given information model. The meta data of the content model may describe associations between the unstructured data as well as information about the unstructured data. For example, the content model for the document created using the Microsoft® Word application may define meta data to include author, date created, data classification (e.g., letter, diagram, spreadsheet, etc.).
One of the problems the information model creates, however, is scalable access from the application layer. For example, a particular business service application may have access to thousands of information model nodes, each of which may have one or more associations to other information model nodes. Thus, a query or request by a user to view data related to one or more information model nodes typically requires significant time using traditional data access techniques, such as read through caching via a relational database management system (“RDBMS”). Furthermore, associations between the information models often lead to cache “bleed.” Cache “bleed” occurs when an information model consists of a significant number of nodes and caching two disparate nodes connected by many other associated nodes causes the cache manager to store in cache memory all of the associated nodes in order to retrieve and store the desired two desperate nodes for access by the corresponding business application manager. Since conventional cache memory is a finite size, the cache manager is unable to store (e.g., “bleeds out”) other nodes that would be of value to cache for the business service application.
In addition, business service application performance is typically optimized by storing an information model nodes in the same cache memory space or system memory space. However, when the information model is large (e.g., includes thousands of nodes) the information model nodes typically must be stored across multiple cache or system memory spaces on a network, which reduces the performance of the business service application.
Moreover, an information model is typically built or instantiated from a corresponding conceptual model developed by or for a programmer designing the business service application, which will access the instantiated information model. However, after the information model is instantiated and the business service application is running, adding a new node or data class to the conceptual model to accommodate a corresponding change to the business service application requires the programmer or information model administrator to manually modify the information model to ensure the integrity of information model is maintained. However, manually adding a new node or data class to an information model that is already in use may cause operational delays or other performance problems for the business service application.
Therefore, a need has long existed for methods and systems that overcome the problems noted above and others previously experienced.